﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using FluorineFx;
using System.Data;

namespace CasasJusticia.Messaging.Contexto.CasasJusticia
{
    [RemotingService("Entidad")]
    public class Entidad
    {
        /*#region Miembros de Datos

        private string _nombreVistaEntidades = "CasasJusticia.dbo.View_EntidadesPorCasasGeo";

        private string _consultaIdsCasasJusticia;

        #endregion

        #region Constructor

        public Entidad()
        {
            this._consultaIdsCasasJusticia = string.Format("SELECT DISTINCT(IdCasaJusticia) FROM {0} WHERE  *0 AND IdCasaJusticia IN (*1)", this._nombreVistaEntidades);
            this._consultaIdsCasasJusticia = this._consultaIdsCasasJusticia.Replace("*0", "{0}");
            this._consultaIdsCasasJusticia = this._consultaIdsCasasJusticia.Replace("*1", "{1}");
        }

        #endregion

        #region Procedimientos y Funciones

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="idCasasJusticia"></param>
        /// <returns></returns>
        [DataTableType("CasasJusticia.Modelo.EntidadPorCasaGeo")]
        public string ConsultarCasasJusticia(string sql, Array idCasasJusticia)
        {
            try
            {
                if (idCasasJusticia == null)
                    return null;
                if (idCasasJusticia.Length <= 0)
                    return null;
                string codigos = string.Join(",", idCasasJusticia.Cast<string>().ToArray());

                string sqlF = string.Format(this._consultaIdsCasasJusticia, sql, codigos);

                Consulta consulta = new Consulta();

                DataTable resultado = consulta.Ejecutar(sqlF);

                Collection<string> codigosF = new Collection<string>();

                string codigosStr = string.Empty;

                for (int i = 0; i < resultado.Rows.Count; i++)
                {
                    if (resultado.Rows[i][0] != null)
                    {
                        string valor = resultado.Rows[i][0].ToString();
                        if (codigosF.IndexOf(valor) < 0)
                            codigosF.Add(valor);
                    }
                }

                if (codigosF.Count > 0)
                {
                    codigosStr = string.Join(",", codigosF.Cast<string>().ToArray());
                    codigosStr = string.Format("IdCasaJusticia IN ({0})", codigosStr);
                    return codigosStr;
                }else
                    return codigosStr;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        #endregion*/
    }
}
